﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CuaHangMayTinh.BusinessEntities;
using CuaHangMayTinh.BusinessLogicLayer;
using CuaHangMayTinh.Utilities;

namespace CuaHangMayTinh.PresentationLayer
{
    public partial class FormMatHangBanChay : Form
    {
        public FormMatHangBanChay()
        {
            InitializeComponent();
        }

        /// <summary>
        /// table chứa thông tin tìm kiếm
        /// </summary>
        private DataTable Table { get; set; }

        /// <summary>
        /// kiểu tìm kiếm của hoa don
        /// </summary>
        enum KieuTimKiem
        {
            Ngày,
            Tháng,
            Năm,
            Quý
        }

        /// <summary>
        /// load lên datagriview từ dt
        /// </summary>
        /// <param name="dt"></param>
        private void LoadListView(DataTable dt)
        {
            dataGridViewX_Select.DataSource = DataUtil.ChangeColumn(dt);
            if (dt != null)
            {
                dataGridViewX_Select.Sort(this.dataGridViewX_Select.Columns[2], ListSortDirection.Descending);
                dataGridViewX_Select.Columns["Ngày lập"].DefaultCellStyle.Format = "dd/MM/yy  h:mm:ss tt";
            }
        }

        /// <summary>
        /// bắt sự kiện thay đổi text search 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripTextBox_serchkey_TextChanged(object sender, EventArgs e)
        {
            string text = (sender as ToolStripTextBox).Text;
            if (StringHelper.IsNullorEmpty(text))
            {
                LoadListView(Table);
                return;
            }
            int kieu = (int)Enum.Parse(typeof(KieuTimKiem), toolStripcbb_kieu.SelectedItem.ToString());
            DataTable dt = new DataTable();
            switch (kieu)
            {
                case 0:
                    try
                    {
                        dt = DataUtil.TimkiemTheo(Table, "Ngày Lập", int.Parse(text), 0);
                    }
                    catch (Exception)
                    {
                        dt = Table.Clone();
                    }
                    break;
                case 1:
                    try
                    {
                        dt = DataUtil.TimkiemTheo(Table, "Ngày Lập", int.Parse(text), 1);
                    }
                    catch (Exception)
                    {
                        dt = Table.Clone();
                    }
                    break;
                case 2:
                    try
                    {
                        dt = DataUtil.TimkiemTheo(Table, "Ngày Lập", int.Parse(text), 2);
                    }
                    catch (Exception)
                    {
                        dt = Table.Clone();
                    }
                    break;
                case 3:
                    try
                    {
                        dt = DataUtil.TimkiemTheo(Table, "Ngày Lập", int.Parse(text), 3);
                    }
                    catch (Exception)
                    {
                        dt = Table.Clone();
                    }
                    break;
            }
            LoadListView(dt);
        }

        private void FormMatHangBanChay_Load(object sender, EventArgs e)
        {
            Table = ModelMatHangManager.Find_Info_Ban();
            LoadListView(Table);
            toolStripcbb_kieu.ComboBox.DataSource = Enum.GetValues(typeof(KieuTimKiem));
        }
    }
}
